To satisfy the needs of their customers, software vendors continuously test and update their products. While some of these updates come in the form of full product releases, many of them come in the form of software patches or “shims.” Shims, like the products they are designed to enhance, require extensive testing and verification. One way to test a software shim is to load the full software product for which the shim is intended and then run the shim on top of the product. However, loading an entire software product can be very time consuming, making it impractical to test a large number of shims in this manner.